package com.evil.application.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 应用表
 *
 * @author liyang
 * @date 2023-02-15 16:01
 */
@Data
@TableName(value = "evil_application_info")
public class ApplicationInfo implements Serializable {

    /**
     * id
     */
    @TableId(value = "application_id", type = IdType.AUTO)
    private Long applicationId;

    /**
     * 应用唯一key
     */
    @TableField(value = "application_key")
    private String applicationKey;

    /**
     * 企业id
     */
    @TableField(value = "enterprise_id")
    private Long enterpriseId;

    /**
     * 应用组id(0: 无组)
     */
    @TableField(value = "application_group_id")
    private Long applicationGroupId;

    /**
     * 应用类型(0:未知类型, 1: 普通应用, 2: 视图应用)
     */
    @TableField(value = "application_type")
    private Integer applicationType;

    /**
     * 应用名称
     */
    @TableField(value = "application_name")
    private String applicationName;

    /**
     * 应用标题
     */
    @TableField(value = "application_title")
    private String applicationTitle;

    /**
     * 新建按钮文案
     */
    @TableField(value = "add_btn_text")
    private String addBtnText;

    /**
     * icon
     */
    @TableField(value = "icon")
    private Long icon;

    /**
     * 权限类型(0:全体, 1:指定)
     */
    @TableField(value = "permission_status")
    private Integer permissionStatus;

    /**
     * 发布状态(0:有未发布, 1:已发布)
     */
    @TableField(value = "publish_status")
    private Integer publishStatus;

    /**
     * 上次发布时间
     */
    @TableField(value = "last_publish")
    private Date lastPublish;

    /**
     * 上次发布时间
     */
    @TableField(value = "last_publisher_id")
    private Long lastPublisherId;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 状态(0:禁用, 1:开启)
     */
    @TableField(value = "is_enable")
    private Integer isEnable;

    /**
     * 申请状态(0:禁用, 1:开启)
     */
    @TableField(value = "apply_enable")
    private Integer applyEnable;

    /**
     * 是否已删除(0:否, 1:是)
     */
    @TableField(value = "is_deleted")
    private Integer isDeleted;

    /**
     * 创建人
     */
    @TableField(value = "creator_id")
    private Long creatorId;

    /**
     * 创建人名字
     */
    @TableField(value = "creator_name")
    private String creatorName;

    /**
     * 修改操作人
     */
    @TableField(value = "modifier_id")
    private Long modifierId;

    /**
     * 修改操作人名字
     */
    @TableField(value = "modifier_name")
    private String modifierName;

    /**
     * 创建时间
     */
    @TableField(value = "created")
    private Date created;

    /**
     * 更新时间
     */
    @TableField(value = "updated")
    private Date updated;

    @Serial
    private static final long serialVersionUID = 1L;

    public static final String COL_APPLICATION_ID = "application_id";

    public static final String COL_APPLICATION_KEY = "application_key";

    public static final String COL_ENTERPRISE_ID = "enterprise_id";

    public static final String COL_APPLICATION_GROUP_ID = "application_group_id";

    public static final String COL_APPLICATION_TYPE = "application_type";

    public static final String COL_APPLICATION_NAME = "application_name";

    public static final String COL_APPLICATION_TITLE = "application_title";

    public static final String COL_ADD_BTN_TEXT = "add_btn_text";

    public static final String COL_ICON = "icon";

    public static final String COL_PERMISSION_STATUS = "permission_status";

    public static final String COL_PUBLISH_STATUS = "publish_status";

    public static final String COL_LAST_PUBLISH = "last_publish";

    public static final String COL_LAST_PUBLISHER_ID = "last_publisher_id";

    public static final String COL_REMARK = "remark";

    public static final String COL_IS_ENABLE = "is_enable";

    public static final String COL_APPLY_ENABLE = "apply_enable";

    public static final String COL_IS_DELETED = "is_deleted";

    public static final String COL_CREATOR_ID = "creator_id";

    public static final String COL_CREATOR_NAME = "creator_name";

    public static final String COL_MODIFIER_ID = "modifier_id";

    public static final String COL_MODIFIER_NAME = "modifier_name";

    public static final String COL_CREATED = "created";

    public static final String COL_UPDATED = "updated";
}